package com.dirox.jira.notes.service;

import com.atlassian.activeobjects.tx.Transactional;
import com.dirox.jira.notes.entities.*;
import java.util.List;


@Transactional
public interface NoteService {
	Note add(String content, int priority, User currentUser);

	Note update(int id, String content, int priority);

	void delete(int id);

	List<Note> getAll();

	List<Note> getNotes(int priority, User currentUser);

	List<Note> getNotes(String issueKey, User currentUser);

	List<Note> getMemos(User currentUser);

	List<Note> getMemos(String issueKey, User currentUser);

	void tagNoteToUser(Note note, com.atlassian.crowd.embedded.api.User user);

	void untagNoteToUser(Note note, User user);

	void associateUsers(Note note,
	                    com.atlassian.crowd.embedded.api.User[] arrUsers);

	void tagNoteToIssue(Note note, com.atlassian.jira.issue.Issue issue);

	void untagNoteToIssue(Note note, Issue issue);

	void associateIssues(Note note, com.atlassian.jira.issue.Issue[] arrIssues);

	User currentUser();

	// Add function
	Note getNote(int id);
}
